package com.tjec.project.projectWorkbench.service.impl;

import java.util.List;
import com.tjec.common.utils.DateUtils;
import com.tjec.common.utils.SecurityUtils;
import com.tjec.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tjec.project.projectWorkbench.mapper.BmsCostNoMapper;
import com.tjec.project.businessWorkbench.domain.BmsBusiness;
import com.tjec.project.businessWorkbench.mapper.BmsBusinessMapper;
import com.tjec.project.projectWorkbench.domain.BmsBusinessOper;
import com.tjec.project.projectWorkbench.domain.BmsCostNo;
import com.tjec.project.projectWorkbench.service.IBmsBusinessOperService;
import com.tjec.project.projectWorkbench.service.IBmsCostNoService;

/**
 * 造价报告号Service业务层处理
 * 
 * @author pangyongfeng
 * @date 2020-08-05
 */
@Service
public class BmsCostNoServiceImpl implements IBmsCostNoService 
{
    @Autowired
    private BmsCostNoMapper bmsCostNoMapper;
    
    @Autowired
    private BmsBusinessMapper bmsBusinessMapper;
    
    @Autowired
	private IBmsBusinessOperService bmsBusinessOperService;

    /**
     * 查询造价报告号
     * 
     * @param guid 造价报告号ID
     * @return 造价报告号
     */
    @Override
    public BmsCostNo selectBmsCostNoByGuid(String guid)
    {
        return bmsCostNoMapper.selectBmsCostNoByGuid(guid);
    }

    /**
     * 查询造价报告号列表
     * 
     * @param bmsCostNo 造价报告号
     * @return 造价报告号
     */
    @Override
    public List<BmsCostNo> selectBmsCostNoList(BmsCostNo bmsCostNo)
    {
        return bmsCostNoMapper.selectBmsCostNoList(bmsCostNo);
    }

    /**
     * 新增造价报告号
     * 
     * @param bmsCostNo 造价报告号
     * @return 结果
     */
    @Override
    public String insertBmsCostNo(BmsCostNo bmsCostNo)
    {
    	if(StringUtils.isNotBlank(bmsCostNo.getGuid())) {
    		bmsCostNoMapper.updateBmsCostNo(bmsCostNo);
    	}else {
    		bmsCostNo.setCreateTime(DateUtils.getNowDate());
            /*if(StringUtils.isBlank(bmsCostNo.getCreateBy())){
                bmsCostNo.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
            }*/
            bmsCostNoMapper.insertBmsCostNo(bmsCostNo);
            
            BmsBusiness oldBusiness = bmsBusinessMapper.selectBmsBusinessByGuid(bmsCostNo.getBusinessId());
        	if(oldBusiness!=null && StringUtils.isNotBlank(bmsCostNo.getCostNo())) {
        		//添加操作记录
            	BmsBusinessOper bmsBusinessOper = new BmsBusinessOper();
            	bmsBusinessOper.setBusinessId(oldBusiness.getGuid());
            	bmsBusinessOper.setOperPerson(SecurityUtils.getLoginUser().getUser().getNickName());
        		bmsBusinessOper.setOperPersonNo(SecurityUtils.getLoginUser().getUser().getJobNo());
        		bmsBusinessOper.setBusinessName(oldBusiness.getName());
        		bmsBusinessOper.setProjectId(oldBusiness.getProjectId());
        		bmsBusinessOper.setFieldName("报告号/招标号");
        		bmsBusinessOper.setBusinessNo(oldBusiness.getSectionNumber());
        		bmsBusinessOper.setOperType("6");
        		bmsBusinessOper.setNewParams(bmsCostNo.getCostNo());
        		bmsBusinessOperService.insertBmsBusinessOper(bmsBusinessOper);
        	}
    	}
    	
    	
    	
        return bmsCostNo.getGuid();
    }

    /**
     * 修改造价报告号
     * 
     * @param bmsCostNo 造价报告号
     * @return 结果
     */
    @Override
    public int updateBmsCostNo(BmsCostNo bmsCostNo)
    {
        return bmsCostNoMapper.updateBmsCostNo(bmsCostNo);
    }

    /**
     * 批量删除造价报告号
     * 
     * @param guids 需要删除的造价报告号ID
     * @return 结果
     */
    @Override
    public int deleteBmsCostNoByGuids(String[] guids)
    {
        return bmsCostNoMapper.deleteBmsCostNoByGuids(guids);
    }

    /**
     * 删除造价报告号信息
     * 
     * @param guid 造价报告号ID
     * @return 结果
     */
    @Override
    public int deleteBmsCostNoByGuid(String guid)
    {
        return bmsCostNoMapper.deleteBmsCostNoByGuid(guid);
    }

	@Override
	public Integer checkBmsCostNo(BmsCostNo bmsCostNo) {
		return bmsCostNoMapper.checkBmsCostNo(bmsCostNo);
	}

	@Override
	public List<BmsCostNo> selectCostTypeAndNoList(BmsCostNo bmsCostNo) {
		return bmsCostNoMapper.selectCostTypeAndNoList(bmsCostNo);
	}

    @Override
    public int updateBmsCostNoHistory(BmsCostNo bmsCostNo) {
        return bmsCostNoMapper.updateBmsCostNoHistory(bmsCostNo);
    }

    /**
     * 修改造价报告号表通过造价报告号
     * @param bmsCostNo
     * @return
     */
    @Override
    public int updateBmsCostNoByCostNo(BmsCostNo bmsCostNo) {
        return bmsCostNoMapper.updateBmsCostNoByCostNo(bmsCostNo);
    }

    /**
     * 修改造价报告号历史表通过造价报告号
     * @param bmsCostNo
     * @return
     */
    @Override
    public int updateBmsCostNoHistoryByCostNo(BmsCostNo bmsCostNo) {
        return bmsCostNoMapper.updateBmsCostNoHistoryByCostNo(bmsCostNo);
    }
}
